package com.tree.sort;

import com.alibaba.fastjson.JSON;

/**
 * package com.tree.sort
 * description:
 * 冒泡排序
 *  比较相邻的元素。如果第一个比第二个大，就交换他们两个。
 *
 * 对每一对相邻元素作同样的工作，从开始第一对到结尾的最后一对。这步做完后，最后的元素会是最大的数。
 *
 * 针对所有的元素重复以上的步骤，除了最后一个。
 *
 * 持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。
 *
 * @author tree
 * @date 2019-10-18 15:56
 */
public class BubbleSort {

    public static void main(String[] args) {
        int[] arr = {1,2,4,3,6,2,5};
        bubbleSort(arr);
    }

    public static void bubbleSort(int[] arr){

        for(int i = 0; i < arr.length;i++){
            // 如果循环没有一次交换， 则代表整个数组已经有序
            boolean flag = true;
            for(int j = 0; j < arr.length-i-1;j++){
                if(arr[j] > arr[j+1]){
                    //swap(arr[j],arr[j+1]);
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    flag = false;
                }
            }
            if(flag){
                break;
            }
        }

        System.out.println(JSON.toJSONString(arr));
    }

    public static void swap (int a, int b){
        int temp = a;
        a = b;
        b = temp;

    }
}
